package com.aaa.book_mall.controller;

import com.aaa.book_mall.util.Result;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.UUID;

/**
 * @ClassName UploadController
 * @Description ToDo
 * @Auther teacher Bai
 * @Date 2021/1/15 16:28
 */

/**
 * 
 * @description:
 * @author: asus
 * @date: 2021/1/15 21:02
 */
@RestController
public class UploadController {


    @PostMapping("/uploadOSS")
    public Result uploadOSS(MultipartFile file, HttpServletRequest request) throws IOException {

            //3.上传操作：
            //3.1 先获取到上传的文件的后缀名
            String filename = file.getOriginalFilename();//获取文件的原名
            System.out.println(filename);
            int i = filename.lastIndexOf(".");
            String suffix = filename.substring(i);//得到文件的后缀名
            //3.2 将整体的文件名变成唯一的
            //使用java.util包提供的UUID类，得到一个唯一的标识
            String uuid = UUID.randomUUID().toString();
            filename = uuid + suffix;
            System.out.println(filename);

        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = "oss-cn-beijing.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        String accessKeyId = "LTAI4GK7PnnAydxDuQ9aygmM";
        String accessKeySecret = "DS1I5r9T6qJ6GwFEo4vynFq7UDIhNl";
        String bucketName = "bazu";
// <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg。
        String objectName = filename;

// 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 上传文件到指定的存储空间（bucketName）并将其保存为指定的文件名称（objectName）。
        //String content = "Hello OSS";
        ossClient.putObject(bucketName, objectName,file.getInputStream());

// 关闭OSSClient。
        ossClient.shutdown();



        //https://bazu.oss-cn-beijing.aliyuncs.com/9db70ad4-2431-46e8-8b1b-4ef18345dd4a.jpg
        String url="https://"+bucketName+"."+endpoint+"/"+filename;
        Result result = new Result("1",url);
        return result;
    }
}
